lpunbfandomcom-20200214-history
Seminário Python 2/2015 - Grupo 2
Seminário Python 2/2015 - Grupo 2 Integrantes Gabriel Mota Araújo - 13/0009130 Renato Estevam Nogueira - 13/0036579 Danilo José Bispo Galvão - 12/0114852 George de Pontes da Silva- 12/0012197 Brenda Barbosa de Souza - 12/0111918 1 - Sobre Python Python é uma linguagem de programação lançada por Guido van Rossum em 1991. Suas características principais como linguagem são: -Multiparadigma(orientada a objetos, imperativa, funcional) -Alto nível -Tipagem dinâmica e forte Segue abaixo um link para a documentação do Python 2.7, que foi utilizado no projeto: https://docs.python.org/2/contents.html 1.1 - História A linguagem Python foi criada no ano de 1989 no Instituto de Pesquisa Nacional para Matemática e Ciência da Computação (CWI) na Holanda por Guido van Rossum, no intuito de ser a sucessora da linguagem ABC, com o adicional do tratamento de exceções. O nome “Python” foi atribuído a essa linguagem como uma homenagem ao grupo de comédia britânico Monty Python. 1.2 - Bases Com dito acima, Python foi feito baseado na linguagem ABC. Sua sintaxe deriva da sintaxe de C, e possui elementos de outras linguagens de programação como Haskell, Perl, Icon e Modula-3. 1.3 - Versões Aqui serão citadas as versões com mudanças mais relevantes para Python: Versão 0.9 A versão 0.9 do código foi lançada em 1991, e foi a primeira publicação do código por Van Rossum. Esta versão já possuía classes com herança, funções e tratamento de exceção e os tipos de dados básicos como listas, dicionários e strings. Versão 1.0 A versão 1.0 do código foi lançada em 1994, e possibilitava o uso de ferramentas para programação funcional como lambda, filter, reduce e map. Versão 1.4 A versão 1.4 do código foi lançada em 1995. Nela foi adicionado suporte aos números complexos, possibilidade de passar parâmetros pelo nome e não pela posição na lista de parâmetros, e melhoras na forma de encapsulamento dos dados. Versão 2.0 A versão 2.0 do código foi lançada em 2000, e introduziu ao Python a compreensão de listas, recurso que possibilita a criação de listas baseadas em listas já existentes. Foi inserido também nessa mesma versão o garbage collector. Versão 2.1 A versão 2.1 do código foi lançada em 2001, e trouxe suporte ao escopo aninhado. Versão 2.2 Também lançada em 2001, a versão 2.2 adicionou um gerador(procedimento para controlar iteradores de loops). Versão 3.0 Também conhecido como Python 3000, a versão 3.0 foi lançada em 2008 com o intuito de corrigir falhas e excessos das versões mais antigas. Esta versão não possui compartibilidade com as versões antigas. Como uma das mudanças significativas, a palavra reservada print passou a ser a função print().Além disso, as strings passaram a ser Unicode. Versão 3.5 Com mudanças mais simplórias, esta é a versão mais atual do Python no momento. Segue o link do changelog do Python 3.5 abaixo: https://docs.python.org/3/whatsnew/3.5.html 1.4 - Palavras reservadas Segue abaixo a lista das palavras reservadas de Python: and del from not while as elif global or with assert else if pass yield break except import print class exec in raise continue finally is return def for lambda try 1.5 - Tipos de dados Python possui verificação de tipos em tempo de execução, não sendo portanto necessário declarar o tipo de uma variável no código fonte, o que facilita a experiência de programar para programadores iniciantes. 1.5.1 - Lista de tipos de dados nativos complex - número complexo str - array de caracteres imutável unicode - array de caracteres imutável(em Unicode) list - lista heterogênea mutável tuple - tupla imutável bool - booleano set - conjunto não ordenado dict - conjunto associativo int - número de precisão fixa float - número com ponto flutuante 1.6 - Domínio de aplicação Python é uma linguagem de alto-nível de propósito geral, que pode ser aplicada a diferentes tipos de problemas.Ela oferece facilidades para processamento de textos, desenvolvimento Web e também para fazer integrações entre diferentes aplicações, ou entre aplicações escritas em diferentes linguagens, por possuir relativa facilidade em chamar módulos de outras linguagens. Alguns exemplos disso são a comunicação de programas com banco de dados e a possibilidade de utilizar bibliotecas escritas em C ou C++. 1.7 - Operadores 1.7.1 - Operadores relacionais Os operadores relacionais em Python são semelhantes aos operadores relacionais em C. Exemplo: >>>'a' != 'a' False 1.7.2 - Operadores lógicos Os operadores lógicos em Python funcionam de forma semelhante ao C, porém possuem sintaxes diferentes. Exemplo: >>>a = False >>>b = True >>>a and b False 1.8 - Condicionais Os principais comandos condicionais de Python são if, elif e else. Exemplo: >>>def valor_digitado(x): if (x > 0): print("Valor positivo") elif(x 0): print("Valor nulo") else: print("Valor negativo") 1.9 - Iterações Os principais comandos de iteração em Python são for e while(que funcionam semelhantes ao C). Em Python, o for pode ser usado para listar elementos de uma sequência por meio do for in. Exemplo: >>>dias_semana 'quarta', 'sexta' >>>for x in dias_semana: print (x) segunda quarta sexta 1.10 - Funções Em Python, as funções são declaradas com a palavra def. Diferentemente de C, em Python não é necessário declarar os tipos dos argumentos da função ou do retorno da mesma. Exemplo: >>def funcao_frase(nome, idade): print("nome " tem " + idade + " anos.") >>funcao_frase("Gabriel", "19") Gabriel tem 19 anos. 1.10.1 - Funções lambda É possível implementar funções lambda em Python. Exemplo: >>>f = lambda x,y: x + y >>>f(2,2) 4 1.11 - Paradigmas Python suporta três paradigmas de programação: Imperativo(ou procedural) Funcional Orientação a Objetos 1.12 - Classes Como Python suporta orientação a objetos, é possível fazer classes em Python utilizando a palavra class. Exemplo: >>>class retangulo: def __init__(self, width, height): self.width = width self.height = height 2 - Sobre o projeto O projeto implementado é um sistema de cadastro de pessoas via HTML. Para desenvolver o projeto utilizamos Django, que é um framework para desenvolvimento em web para Python. Ele contém as ferramentas necessárias para o desenvolvimento de nosso projeto. Como ferramenta de comunicação foi utilizado o Slack. Segue abaixo o site do Django: https://www.djangoproject.com/ 2.1 - Sobre Django 2.1.1 - História do Django Django é um framework para desvolvimento web em Python publicado em 2005 sob liçença BSD(Berkeley Software Distribution). O intuito da criação do Django foi para gerenciar um site jornalístico chamado Lawrence Journal-World. Seu nome foi inspirado no jazzista Django Reinhardt. 2.1.2 - Filosofia do Django O Django segue a filosofia DRY(Don't Repeat Yourself), que prega o aproveitamento ao máximo do código já feito, evitando assim a repetição do código. 2.1.3 - Características do Django Mapeamento objeto-relacional: Com o ORM do Django a modelagem de dados é definida através de classes em Python. Com isso é possível gerar tabelas no banco de dados e manipulá-las sem necessidade de utilizar SQL (o que também é possível caso se queira usar). Interface administrativa: No Django é possível gerar automaticamente uma interface para administração dos modelos criados através do mapeamento objeto-relacional. Formulários:É possível gerar formulários automaticamente através dos modelos de dados inseridos no Django. Sistema de templates: O Django tem uma linguagem de templates extensível. Com ela é possível separar design, conteúdo e código em Python. Internacionalização: Django tem total suporte para aplicações multi-idioma, fazendo possível especificar strings de tradução a fim de internacionalizar o programa. 2.2 - Sobre Slack Nossa equipe utilizou o Slack para a parte de comunicação da equipe por conta de sua integração com outros serviços como Trello. 2.2.1 - História do Slack O Slack é uma ferramenta de colaraboração em equipe cofundada por Stewart Butterfield, Eric Costello, Cal Henderson, e Serguei Mourachov.O Slack foi lançado em 2013, e conseguiu 8,000 usuários em 24 horas do seu lançamento. 2.2.2 - Funcionalidades do slack O Slack possui salas de chat públicas e privadas, assim como a possibilidade de enviar mensagens diretas.Todo o conteúdo(conversas, arquivos enviáveis, pessoas) é procurável em sua barra de pesquisa. Sua melhor funcionalidade é sua integração com outros serviços como Google Drive, Trello, Dropbox, Heroku, Crashlytics, GitHub, Runscope e Zendesk.